REST API (Representational State Transfer Application Programming Interface) হলো একটি স্টাইল যেখানে ওয়েব সার্ভিসগুলি HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ করে। এটি সাধারণত CRUD (Create, Read, Update, Delete) অপারেশনগুলির জন্য ব্যবহৃত হয়। Flask এবং FastAPI হল দুটি জনপ্রিয় Python ফ্রেমওয়ার্ক যা REST API তৈরি করার জন্য ব্যবহৃত হয়।
এখানে আমরা Flask এবং FastAPI দিয়ে কিভাবে REST API তৈরি করা যায় তা দেখবো।
১. Flask দিয়ে REST API তৈরি
Flask একটি মাইক্রোফ্রেমওয়ার্ক যা খুবই হালকা এবং সহজে REST API তৈরি করতে সহায়ক। Flask-এ REST API তৈরি করার জন্য সাধারণভাবে Flask এবং Flask-RESTful লাইব্রেরি ব্যবহার করা হয়।
Flask REST API উদাহরণ
Flask ইনস্টল করা: প্রথমে Flask ইনস্টল করতে হবে:
pip install FlaskFlask দিয়ে API তৈরি করা:
Flask দিয়ে একটি REST API তৈরি করা খুবই সহজ। এখানে একটি সিম্পল API তৈরি করা হল যা একটি টেক্সট রিটার্ন করবে।
from flask import Flask, jsonify app = Flask(__name__) # GET request @app.route('/api/hello', methods=['GET']) def hello_world(): return jsonify({"message": "Hello, World!"}) # POST request @app.route('/api/echo', methods=['POST']) def echo(): data = {"message": "You sent a POST request!"} return jsonify(data) if __name__ == '__main__': app.run(debug=True)- GET:
/api/helloরাউটটি "Hello, World!" মেসেজ রিটার্ন করবে। - POST:
/api/echoরাউটটি একটি POST রিকোয়েস্ট গ্রহণ করবে এবং একটি মেসেজ রিটার্ন করবে।
- GET:
API চালানো:
আপনি মডেলটি চালানোর জন্য এই কোডটি রান করতে পারেন:
python app.pyএরপর আপনার API চালু হবে এবং আপনি Postman বা Curl ব্যবহার করে API এর রেসপন্স দেখতে পারবেন।
২. FastAPI দিয়ে REST API তৈরি
FastAPI একটি দ্রুত এবং আধুনিক Python ফ্রেমওয়ার্ক যা Starlette এবং Pydantic ব্যবহার করে তৈরি করা হয়েছে। FastAPI REST API তৈরি করার জন্য খুবই কার্যকরী, কারণ এটি অটো ডকুমেন্টেশন, ইনপুট ভ্যালিডেশন এবং দ্রুত পারফরম্যান্স প্রদান করে।
FastAPI REST API উদাহরণ
FastAPI ইনস্টল করা:
FastAPI ইনস্টল করতে হবে:
pip install fastapi pip install uvicornFastAPI দিয়ে API তৈরি করা:
FastAPI দিয়ে API তৈরি করা খুবই সহজ এবং স্বচ্ছ। এখানে একটি সিম্পল API তৈরি করা হল।
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() # একটি ইনপুট ডেটা মডেল তৈরি করা class Item(BaseModel): name: str description: str = None price: float tax: float = None # GET request @app.get("/api/hello") def read_root(): return {"message": "Hello, World!"} # POST request @app.post("/api/items/") def create_item(item: Item): return {"name": item.name, "price": item.price} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="127.0.0.1", port=8000)- GET:
/api/helloরাউটটি "Hello, World!" মেসেজ রিটার্ন করবে। - POST:
/api/items/রাউটটি একটি POST রিকোয়েস্ট গ্রহণ করবে এবং JSON ডেটা রিটার্ন করবে যাItemমডেল অনুযায়ী প্রক্রিয়াজাত হবে।
- GET:
FastAPI চালানো:
FastAPI চালানোর জন্য আপনি uvicorn ব্যবহার করতে পারেন:
uvicorn app:app --reloadএরপর আপনার API চালু হবে এবং আপনি Postman বা Curl ব্যবহার করে API এর রেসপন্স দেখতে পারবেন।
৩. API ডকুমেন্টেশন
FastAPI একটি দুর্দান্ত সুবিধা প্রদান করে, যা Swagger UI এবং ReDoc এর মাধ্যমে অটো API ডকুমেন্টেশন তৈরি করে। আপনি যখন FastAPI অ্যাপটি চালান, Swagger UI এ গিয়ে আপনার API রাউট এবং মেথড দেখতে পারবেন।
Flask এ এরকম ডকুমেন্টেশন তৈরি করতে Flask-RESTPlus বা Flask-Swagger-UI প্যাকেজ ব্যবহার করতে হয়, যা অতিরিক্ত কনফিগারেশন প্রয়োজন।
৪. সারাংশ
- Flask হল একটি হালকা এবং সহজ ফ্রেমওয়ার্ক, যেখানে দ্রুত API তৈরি করা যায় এবং এটি খুবই জনপ্রিয়।
- FastAPI হল একটি দ্রুত এবং আধুনিক ফ্রেমওয়ার্ক, যা অটো ডকুমেন্টেশন এবং ইনপুট ভ্যালিডেশন প্রদান করে, এছাড়া এটি উচ্চ পারফরম্যান্স প্রদান করে।
- FastAPI ডকুমেন্টেশন যেমন Swagger UI এর মাধ্যমে অটো তৈরি হয়, যা Flask-এ অতিরিক্ত লাইব্রেরি ব্যবহার করে করতে হয়।
Flask এবং FastAPI উভয়ই শক্তিশালী ফ্রেমওয়ার্ক, তবে FastAPI আরও আধুনিক এবং দ্রুত পারফরম্যান্স প্রদান করে, বিশেষ করে যদি আপনার API তে বেশি লোড থাকে বা দ্রুত সাড়া দেওয়ার প্রয়োজন হয়।
Read more